Hadoop 全分布部署
前期准备:已安装jdk,已配置hosts文件,已配置ssh免密码连入,任务安装包统一在“/h3cu/”中。
编号 | 主机名 | 类型 | 用户 | 密码 |
---|---|---|---|---|
1 | master | 主节点 | root | passwd |
2 | slave1 | 从节点 | root | passwd |
3 | slave2 | 从节点 | root | passwd |
1)解压hadoop 到 /usr/local/src/ 目录
tar zxvf /h3cu/hadoop-2.6.0.tar.gz -C /usr/local/src/
2)重命名
cd /usr/local/src/
mv hadoop-2.6.0 hadoop
3)配置 hadoop 环境变量
export HADOOP_HOME=/usr/local/src/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
4)使配置的 hadoop 的环境变量生效
source ~/.base_profile
5)配置 hadoop-env.sh、yarn-env.sh
cd /usr/local/src/hadoop/etc/hadoop
export JAVA_HOME=/usr/local/src/jdk
6)配置 core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/src/hadoop/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
<description>该属性值单位为KB,131072KB即为默认的64M</description>
</property>
</configuration>
7)配置 hdfs-site.xml
dfs.namenode.name.dir:namenode数据的存放地点。也就是namenode元数据存放的地方,记录了hdfs系统中文件的元数据。
dfs.datanode.data.dir: datanode数据的存放地点。也就是block块存放的目录了。
dfs.replication:hdfs的副本数设置。也就是上传一个文件,其分割为block块后,每个block的冗余副本个数,默认配置是3。
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/src/hadoop/data/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/src/hadoop/data/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
</configuration>
8)配置 yarn-site.xml
yarn.resourcemanager.hostname:yarn总管理器的IPC通讯地址
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
9)配置 mapred-site.xml
mapreduce.framework.name:指定mr框架为yarn方式,Hadoop二代MP也基于资源管理系统Yarn来运行 。
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
10)配置 masters 文件(直接跳过吧)
master
11)配置 slaves 文件
slave1
slave2
12)新建目录
mkdir /usr/local/src/hadoop/tmp
mkdir -p /usr/local/src/hadoop/data/dfs/name
mkdir -p /usr/local/src/hadoop/data/dfs/data
13)将 master 上的 hadoop 安装文件同步到 slave1 slave2
scp -r /usr/local/src/hadoop/ slave1:/usr/local/src/
scp -r /usr/local/src/hadoop/ slave2:/usr/local/src/
14)在每个 slave 节点上配置 hadoop 的环境变量(所有 slave 节点)
export HADOOP_HOME=/usr/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
15)使配置的 hadoop 的环境变量生效(所有 slave 节点)
source ~/.base_profile
16) 启动 Hadoop,使用相关命令查看所有节点 Hadoop 进程并截图。
格式化HDFS
hadoop namenode -format
查看hdfs情况
hadoop dfsadmin -report
start-dfs.sh
启动完成后,输入jps查看进程,如果看到以下二个进程:
5161 SecondaryNameNode
4989 NameNode
start-yarn.sh ,完成后,再输入jps查看进程
5161 SecondaryNameNode
5320 ResourceManager
4989 NameNode
如果看到这3个进程,表示yarn也ok了
可以通过 bin/hdfs dfsadmin -report 查看hdfs的状态报告
其它注意事项:
a) master(即:namenode节点)若要重新格式化,请先清空各datanode上的data目录(最好连tmp目录也一起清空),否则格式化完成后,启动dfs时,datanode会启动失败。
b) 如果觉得master机器上只运行namenode比较浪费,想把master也当成一个datanode,直接在slaves文件里,添加一行master即可。
参考:https://www.cnblogs.com/yjmyzz/p/4280069.html
关闭hadoop:
stop-dfs.sh
stop-yarn.sh